package org.apache.james.mime4j.parser;

import java.io.IOException;
import java.io.InputStream;
import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.descriptor.BodyDescriptor;

public abstract interface EntityStateMachine
{
  public abstract EntityStateMachine advance()
    throws IOException, MimeException;

  public abstract BodyDescriptor getBodyDescriptor()
    throws IllegalStateException;

  public abstract InputStream getContentStream()
    throws IllegalStateException;

  public abstract String getField()
    throws IllegalStateException;

  public abstract String getFieldName()
    throws IllegalStateException;

  public abstract String getFieldValue()
    throws IllegalStateException;

  public abstract int getState();

  public abstract void setRecursionMode(int paramInt);
}